package com.linwen.excise.huaweiOJ;

import java.util.ArrayList;
import java.util.List;

/**
 * @author wlw
 * @date 2023/3/22 11:01 PM
 * 你的好友是一位健身爱好者。前段日子，他给自己制定了一份健身计划。现在想请你帮他评估一下这份计划是否合理。
 * 他会有一份计划消耗的卡路里表，其中calories[i]给出了你的这位好友在第i天需要消耗的卡路里总量。
 * 为了更好地评估这份计划，对于卡路里表中的每一天，你都需要计算他 「这一天以及之后的连续几天」 （共k 天）内消耗的总卡路里 T：
 * 如果T < lower，那么这份计划相对糟糕，并失去 1 分； 如果 T > upper，那么这份计划相对优秀，并获得 1 分；
 * 否则，这份计划普普通通，分值不做变动。
 * 请返回统计完所有calories.length天后得到的总分作为评估结果。
 * 注意：总分可能是负数。
 * 示例 1：输入：calories = [1,2,3,4,5], k = 1, lower = 3, upper = 3
 * 输出：0
 * 解释：calories[0], calories[1] < lower 而 calories[3], calories[4] > upper, 总分 = 0.
 * 示例 2： 输入：calories = [3,2], k = 2, lower = 0, upper = 1
 * 输出：1 解释：calories[0] + calories[1] > upper, 总分 = 1.
 * 提示： 1 <= k <= calories.length <= 10^5 0 <= calories[i] <= 20000 0 <= lower <= upper
 */
public class _健身计划评估 {
    public static void main(String[] args) {
        int[] arr = new int[]{1,2,3,4,5};
        int k = 2;
        int lower = 3;
        int upper = 3;
        List<Integer> result = new ArrayList<>();
        for (int i = 0; i <= arr.length-k; i++) {
            result.add(function1(i,arr,k));
        }
        int rt = 0;
        for (int i = 0; i < result.size(); i++) {
            if(result.get(i)<lower){
                rt--;
            }
            if(result.get(i)>upper){
                rt++;
            }
        }
        System.out.println(rt);
    }
    private static int function1(int i, int[] arr, int k) {
        int rt = 0;
        for (int i1 = 0; i1 < k && i<arr.length; i1++) {
            rt += arr[i++];
        }
        return rt;
    }
}
